/**
 * 给定数组，求两个元素，标准依次是：与结果最大，下标字典序最小
 * 与有一个性质，相邻数与肯定要更大
 * 因此将A排序，只需比较相邻元素的与即可
 */
#include <bits/stdc++.h>
using namespace std;

#include <bits/extc++.h>
using namespace __gnu_pbds;

using Real = long double;
using llt = long long;
using pii = pair<int, int>;
using vi = vector<int>;
using vvi = vector<vi>;

int N;
vi A;

pii proc(){
    vector<pii> vec(N);
    int k = 1;
    for(auto & p : vec){
        p = {A[k], k};
        ++k;
    }
    sort(vec.begin(), vec.end());
    pii ans;
    int tmp = -1;
    for(int i=1;i<N;++i){
        auto tt = vec[i].first & vec[i - 1].first;
        if(-1 == tmp or tmp < tt){
            tmp = tt;
            ans = {vec[i - 1].second, vec[i].second};
        }
    }
    if(ans.second < ans.first) swap(ans.first, ans.second);
    return ans;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(0);
    int nofkase = 1;
    // cin >> nofkase;
    while(nofkase--){
        cin >> N;
        A.assign(N + 1, 0);
        for(int i=1;i<=N;++i)cin>>A[i];
        auto t = proc();
        cout << t.first << " " << t.second << endl;
    }
    return 0;
}